Traffic Performance Optimization Overview


Traffic Performance Optimization Overview
 
 
This chapter provides an overview of the Traffic Performance Optimization (TPO) in-line service.
TPO is a licensed in-line service supported on the Cisco ASR 5000 chassis running any of the following products:
 
The following topics are covered in this chapter:
 
 
Overview
Though TCP is a widely accepted protocol in use today, it is optimized only for wired networks. Due to inherent reliability of wired networks, TCP implicitly assumes that any packet loss is due to network congestion and consequently invokes congestion control measures. However, wireless links are known to experience sporadic and usually temporary losses due to several reasons, including the following, which also trigger TCP congestion control measures resulting in poor TCP performance.
Reasons for delay variability over wireless links include:
 
The TPO in-line service uses a combination of TCP and HTTP optimization techniques to improve TCP performance over wireless links.
 
TPO Deployment
TPO uses the Enhanced Charging Service (ECS) framework for TCP Proxy functionality, and as depicted in the following figure, it is part of the ECS module in the Gateway.
 
TPO Deployment
TPO uses the TCP Proxy to split end-to-end TCP connections between the client and server into two separate TCP connections, and apply the TCP and HTTP optimization techniques in the TCP stack towards the client. The split TCP connections isolate impacts of packet errors and delay variability for the wireless link from the wired connection, so that TCP congestion control, timeout, and retransmission mechanisms in the wired link do not suffer from the fluctuating quality of the radio channel.
note_smallImportant: In this release TPO optimizes only downlink radio usage.
 
TPO Optimization Model
 
Feature Specifications
This section describes features of the TPO in-line service.
 
Licensing
TPO is a licensed in-line service feature requiring the following license to be installed on the chassis:
Cisco PID [ ASRK-00-CS0ITRPO ] Traffic Packet Optimization,1K sessions, or Starent part number [ 600-00-7523 ] Optimization.
For information on obtaining and installing licenses, refer to the Managing License Keys section of the Software Management Operations chapter in the System Administration Guide.
 
Supported Standards
TPO is based on the following RFCs and standards:
 
 
TCP Optimization
To improve TCP performance over wireless links TPO uses TCP optimization techniques that enable:
 
 
TCP Optimization Techniques
This section describes the TCP optimization techniques supported by TPO.
Selection of the optimization techniques to gain TCP performance depends on the network characteristics and the prevalent wireless conditions. To trigger appropriate congestion control techniques for a given situation based on the wireless events, TPO utilizes available information such as subscriber QoS, system load, and so on.
 
Optimizations in TCP Three-way Handshake
During TCP Three-way Handshake, the TCP client and server negotiate to establish a connection. TCP requires three round-trip time (RTT) measurements between the client and server before data transfer is initiated. Determining the RTT adds extra time for each wireless connection.
TPO supports the following optimizations during TCP Three-way Handshake:
 
 
Optimizations in TCP Slow Start Phase
During TCP Slow Start phase, to discover available bandwidth for a connection, TCP calculates the lowest possible bandwidth and increases exponentially until a packet loss is detected. In wireless environments, this phase implies periods during which the link is under-utilized and perceived by the subscribers as slow.
TPO supports the following fast start techniques:
 
The subscriber QoS information is received from the AAA/OCS.
 
Optimizations in TCP Congestion Avoidance Phase
In the TCP Congestion Avoidance phase, TCP after detecting available bandwidth for a new connection linearly adjusts the congestion window to discover incremental bandwidth.
TPO allows to configure any of the following congestion control algorithms:
 
 
Fast Retransmits
To guarantee reliability of transfers, TCP requires the Receiver to respond to the Sender with an acknowledgment for each segment it receives. The Sender keeps a record of each segment it sends, and waits for an acknowledgment before sending the next segment. If the Sender does not receive an acknowledgment within the timeout period, under the assumption that the segment was lost in the network, the Sender fast-retransmits that segment (that is, retransmit without waiting for retransmission timeout (RTO)).
The Receiver will generate duplicate acknowledgements for every out-of-order (OOO) packet it receives. If the Sender receives three duplicate acknowledgements with the same acknowledgement number (that is, a total of four acknowledgements with the same acknowledgement number), the Sender decides that the segment with the next higher sequence number was dropped, and will not arrive out of order. The Sender will then fast-retransmit that segment.
TPO supports the following optimization with fast retransmits:
 
However, note that a higher static value will sometimes lead to not reaching the threshold because of less number of in-flight packets (which will roughly determine the number of duplicate ACKs received by the sender).
 
TCP Handoff Optimization
TPO supports intra-tech and inter-tech handoff events.
When an intra-tech handoff is detected, TPO takes the following actions:
 
1.
2.
3.
4.
5.
6.
When an inter-tech handoff is detected, TPO takes the following actions:
 
1.
2.
Enabling/disabling TCP Handoff Optimization is a CLI-configurable parameter.
 
Retransmission Timeout Optimizations
TPO allows to configure the scaling factor for Round Trip Time Variation (RTTVAR). The configured scaling factor is used as a power of 2, so values of 0 through 4 correspond to 1, 2, 4, 8, and 16. In TCP RTO is calculated using the following formula:
RTO = SRTT + K*RTTVAR
where:
 
SRTT = mean Round Trip Time (RTT)
RTTVAR = Round Trip Time Variation
As wireless networks exhibit high RTT variation, the value of K is configurable. The value of K decides the extent to which Retransmission Timeout (RTO) timer depends on RTT variance. If RTT variance is higher, then K should be higher. The default RTTVAR scaling value, as recommended by RFC 2988, is 2.
TPO also allows to configure the RTO retransmission back-off factor. Once RTO fires for a packet, TCP will retransmit that packet and set the RTO to be a factor X, which is CLI-configurable, of the previous RTO. The default RTO backoff value, as recommended by RFC 5681 is 2.0.
 
HTTP Optimizations
To optimize incoming HTTP payload over TCP connections TPO uses HTTP optimization techniques that enable:
 
 
HTTP Optimization Techniques
This section describes HTTP optimization techniques supported by TPO.
 
HTTP Compression
The HTTP Compression feature enables to compress HTTP content transferred to the mobile client. HTTP Compression, by reducing the amount of traffic to be transported, enables better use of available bandwidth and improves transmission speeds.
note_smallImportant: In this release TPO supports only the standards-based gzip compression algorithm.
Note that TPO will not attempt compression in the following cases:
 
Enabling/disabling the HTTP Compression feature is a CLI-configurable parameter. By default HTTP Compression is disabled.
Compression level is a CLI-configurable parameter. Compression levels 1 through 9 are supported. The higher the compression level, the better the compression efficiency but with increased CPU and memory utilization. By default the compression level is set to 6.
TPO supports Prevention of Compression at the Web server. This enables TPO to receive uncompressed data from the Web server, on which it can apply other HTTP optimization techniques, and then compress the optimized data and send it to the mobile client. TPO achieves this by manipulating the HTTP requests. Enabling/disabling this feature is a CLI-configurable parameter. By default, the Prevention of Server Compression feature is disabled.
The following figure and steps explain how the HTTP Compression feature works:
 
HTTP Compression
1.
2.
3.
If the Web server supports the compression schema(s) in the Accept-Encoding field, in the HTTP response the Web server may send the compressed data, and include the Content-Encoding field with name(s) of the compression schema(s) used. TPO forwards the HTTP response to the mobile client.
4.
If the comparison is favorable, TPO forwards the compressed response to the mobile client, and any subsequent response packets are also compressed. TPO updates the Content-Encoding field with name(s) of the compression schema(s) used. The mobile client’s browser parses the requested data and displays it.
If the comparison is not favorable, TPO forwards the original response to the mobile client and then forwards any subsequent response packets.
 
URL Rewrite
The URL Rewrite feature enables to preemptively resolve host names in embedded URLs present within HTML content and rewrite them with resolved IP addresses. This rewriting helps to eliminate DNS round trips in high latency mobile networks resulting in faster responses.
Enabling/disabling the URL Rewrite feature is a CLI-configurable parameter. By default the URL Rewrite feature is disabled.
note_smallImportant: The URL Rewrite feature needs a valid DNS client to be configured in the ISP (destination) context.
When the URL Rewrite feature is enabled, TPO rewrites URLs of the following format
http://<host_name[:port]>/<url_path>/<file_name.extension>
into
http://<resolved_ip_address[:port]>/<url_rewrite_prefix>/<host_name[:port]>/<url_path>/<file_name.extension>
For example, if the URL Rewrite prefix is urlrewrite, TPO rewrites the URL
http://www.google.com/test.img
into
http://209.85.153.103/urlrewrite/www.google.com/test.img
When the mobile client requests for the URL
http://<resolved_ip_address[:port]>/<url_rewrite_prefix>/<host_name[:port]>/<url_path>/<file_name.extension>
TPO rewrites the URL back to
http://<host_name[:port]>/<url_path>/<file_name.extension>
The URL Rewrite prefix is a CLI-configurable parameter. By default, the prefix is set to “urlrewrite”.
URL Rewrite works only on HTML content, hence it is called only in the following cases:
 
TPO rewrites only those URLs that are present in the following HTML tags:
 
note_smallImportant: URLs that are part of JavaScript and VBScript are not rewritten. If an HTML tag spans across packets, TPO will queue only two packets and will rewrite the URL if found.
The following figure and steps explain how the HTTP URL Rewrite feature works:
 
HTTP URL Rewrite
1.
2.
3.
4.
5.
6.
7.
8.
9.
In case both HTTP Compression and URL Rewrite features are enabled, URL Rewrite processing will happen before HTTP Compression.
 
Advertisement Filter
The Advertisement Filter feature enables to block advertisement content in Web pages delivered to mobile clients. This filtering reduces over-the-air bandwidth usage as advertisements are not always downloaded, and faster response times as advertisement-related server connections are eliminated.
note_smallImportant: In this release, TPO considers only images and Flash objects as advertisements.
TPO is configured with URLs of the advertisement sites to be blocked, typically sites such as www.doubleclick.net/*, ad.yahoo.com, and so on. When the mobile client’s browser receives HTML content, it parses the HTML and sends out requests for images and other content. If there is a request for an image or Flash object whose URL matches any of the URLs to be blocked, TPO blocks the advertisement as per the configuration.
The Advertisement Filter feature supports the following advertisement blocking methods:
 
To enable retrieving the blocked advertisement, in the HTTP request a bypass string is added to the advertisement’s URL, which TPO interprets and forwards to the Web Server allowing the advertisement to be retrieved. The bypass string is a CLI-configurable parameter.
The background color of the placeholder frames and the text displayed in them are CLI-configurable parameters. Operators can use the text to indicate that the advertisement is blocked. Note that different text strings can be configured for “Advertisement Blocking with Text” and “Advertisement Blocking with On-click Function” configurations.
note_smallImportant: The text string and URL displayed in the placeholder frames may be truncated to fit dimensions of the frames.
note_smallImportant: The “Advertisement Blocking with Text” and “Advertisement Blocking with On-click Function” Advertisement Filter functionality is achieved using JavaScript code sent from TPO and executed whenever a Web page is loaded in the mobile client’s browser. If the mobile client’s browser does not support JavaScript or the subscriber has disabled JavaScript, instead of the placeholder frames the subscribers will see the “cannot display image” icons.
 
Basic Advertisement Blocking
The following figure and steps explain how the basic advertisement blocking feature works.
 
Basic Advertisement Blocking
1.
2.
3.
4.
5.
6.
If there is a match, TPO responds with Content-Length 0 for the request thereby blocking the advertisement. In the mobile client’s browser, the image or Flash object is replaced with the “cannot display image” icon.
 
Advertisement Blocking with On-click Function
The following figure and steps explain how the Advertisement Blocking with On-click feature works.
 
Advertisement Blocking with On-click Function
 
1.
2.
3.
4.
5.
6.
7.
When the subscriber clicks the placeholder frame for a blocked image or Flash object, the mobile client’s browser sends an HTTP request with a bypass string appended to the requested URL.
8.
9.
10.
 
TPO Administration
This section describes TPO administration activities and covers the following topics:
 
 
Disabling/Enabling TPO Optimizations
The TPO in-line service allows to disable/continue TPO optimizations when a peer-to-peer (P2P) flow is detected. This is a CLI-configurable feature.
note_smallImportant: In this release, on disabling TPO optimizations only TCP-based optimizations are disabled. Disabling HTTP-based optimizations will be supported in a future release.
 
MUR Reporting for TPO
This section lists the EDR fields supported for TPO - MUR integration.
The Mobility Unified Reporting (MUR) is a Web-based application providing a unified reporting interface for a variety of data from Cisco Systems in-line service and storage applications. For more information on the MUR, see the Mobility Unified Reporting System Online Help.
The following are the EDR generation points:
 
The following EDR fields are supported for TPO - MUR integration:
 
 
Switching TPO Policy
TPO allows to switch a TPO policy in use with a different TPO policy.
note_smallImportant: The switch takes effect only on current calls. For new calls, the RADIUS-returned/APN/subscriber template configured policy is used.
To be able to change the TPO policy in mid session, TPO must have been enabled for the subscriber in the APN/Subscriber template configuration during call setup.
The CLI indicates the number of sessions for which the policy got switched.
 
How TPO Works
This section describes how TPO works.
 
Terms and Definitions
The following is a list of terms specific to TPO functionality:
 
The TPO policy to be used for a subscriber can be from one of the following:
note_smallImportant: The TPO policy received from the AAA and OCS have the same priority. Whichever comes first, either from AAA or the OCS, is applied.
A maximum of 2048 TPO policies can be configured in the system.
 
TPO Processing
TPO can be enabled in either of the following ways:
 
 
Policy-based TPO Processing
The following steps describe how policy-based TPO processing works:
 
1.
2.
3.
During the course of a flow, first the match-rule logic is applied at SYN time — this mostly results in a default match-rule that selects the default TPO profile. This is because many of the match-rule conditions would not apply at SYN time. The match-rule is generally more useful with deep-packet inspection (DPI). During DPI, when the complete HTTP header information is received, the match-rule is invoked and a new TPO profile (if any) is obtained and applied. This new TPO profile (selected during DPI) will be used to perform HTTP optimization. However, the original TPO profile selected during SYN time will be used for TCP optimization.
If the first SYN does not match any TPO profile (in the absence of a default match rule), TPO is not applied to that flow. In 12.0 and later releases, with dynamic TCP Proxy this is no longer the case.
note_smallImportant: The match-rule is also invoked after the HTTP request line is received. At this time, a TPO profile is used to only apply the advertisement block rule (if any). This is required to block any unwanted HTTP request packets for and advertisement site that could be potentially sent to the server. None of the other rules are applied even if present in the profile.
 
Charging Action Based TPO Processing
The following steps describe how charging action based TPO processing works:
 
1.
2.
3.
note_smallImportant: In this release, when the TPO profile specified by a charging action is applied on a flow, only TCP optimizations and the decision to cease/continue TPO optimizations for P2P flows will be controlled by that TPO profile. HTTP optimizations will not be affected.
When the TPO profile specified by a charging action is applied on a flow, and subsequently a different charging action that does not have a TPO profile configured in it is applied on the same flow, TPO will not be disabled.
 

Cisco Systems Inc.
Tel: 408-526-4000
Fax: 408-527-0883